home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Sample Code / Sample Editors⁄Viewers / SamplePart (C) / Source / SamplePartUtils.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-08  |  6.6 KB  |  198 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        SamplePartUtils.h
  3.  
  4.     Contains:    SamplePart utility functions & classes
  5.  
  6.     Written by:    Steve Smith
  7.  
  8.     Copyright:    © 1994,95 by Apple Computer, Inc., all rights reserved.
  9. */
  10.  
  11.  
  12. #ifndef _SAMPLEPARTUTILS_
  13. #define _SAMPLEPARTUTILS_
  14.  
  15. // --- OpenDoc Includes ---
  16.  
  17. #ifndef _ODTYPES_
  18. #include <ODTypes.h>
  19. #endif
  20.  
  21. #ifndef SOM_ODFacet_h
  22. #include <Facet.h>
  23. #endif
  24.  
  25. #ifndef SOM_ODShape_h
  26. #include <Shape.h>
  27. #endif
  28.  
  29. #ifndef SOM_ODStorageUnitView_h
  30. #include <SUView.h>
  31. #endif
  32.  
  33. #ifndef SOM_ODValueNameSpace_h
  34. #include <ValueNS.h>
  35. #endif
  36.  
  37. #ifndef SOM_ODWindow_h
  38. #include <Window.h>
  39. #endif
  40.  
  41. // --- OpenDoc Utilities ---
  42.  
  43. #ifndef _ITEXT_
  44. #include <IText.h>
  45. #endif
  46.  
  47. // --- Macintosh Includes ---
  48.  
  49. #ifndef __TYPES__
  50. #include <Types.h>
  51. #endif
  52.  
  53.  
  54. //------------------------------------------------------------------------------
  55. // Utility Class Typedefs
  56. //------------------------------------------------------------------------------
  57.  
  58. struct CLink {
  59.     ODPtr            content;
  60.     struct CLink*    prev;
  61.     struct CLink*    next;
  62. };
  63.  
  64. typedef struct CLink CLink, *CLinkedList;
  65.  
  66.  
  67. typedef struct CFrameProxy {
  68.     ODFrame*    fFrame;
  69.     ODID        fID;
  70.     ODDraft*    fDraft;
  71. } CFrameProxy;
  72.  
  73. typedef struct CFrameInfo {
  74.     ODSession*        fSession;
  75.     ODBoolean        fFrameActive;
  76.     ODBoolean        fFrameReactivate;
  77.     ODBoolean        fShouldDisposeWindow;
  78.     ODFacet*        fActiveFacet;
  79.     CFrameProxy*    fSourceFrame;
  80.     CFrameProxy*    fDependentFrame;
  81.     ODID            fPartWindowID;
  82. } CFrameInfo;
  83.  
  84.  
  85. //------------------------------------------------------------------------------
  86. // Function Prototypes
  87. //------------------------------------------------------------------------------
  88.  
  89. ODBoolean    NamesAreEquivalent(Environment* ev, ODIText* fileName,
  90.                                         ODIText* partName);
  91. ODIText*    GetPartName(Environment* ev, ODPart* part, ODType category);
  92. void        GetEditorScriptLanguage(Environment* ev, ODScriptCode* script,
  93.                                         ODLangCode* language);
  94. ODBoolean     ValueNameSpaceGetODName(ODValueNameSpace* ns, 
  95.                                  Environment* ev,
  96.                                    ODISOStr key,
  97.                                    ODName** value);
  98. ODBoolean    GetUserCatFromCat(ODNameSpaceManager* theNmSpcMgr, 
  99.                                         ODType category, ODIText** name);
  100.  
  101. void        FixedToIntRect(ODRect* fixedRect, Rect* intRect);
  102. void        IntToFixedRect(Rect* intRect, ODRect* fixedRect);
  103. void        LoadThumbnail(Environment* ev, Handle* thumbnail);
  104. Rect        TilePartWindow(Environment* ev, Rect* facetBounds,
  105.                                         Rect* partWindowBounds);
  106. ODUShort    CountFramesFacets(Environment* ev, ODFrame* frame);
  107.  
  108. // Replacements for functions from StorUtil.cpp
  109.  
  110. ODULong    StorageUnitGetValue_C(ODStorageUnit* su,
  111.                                 Environment* ev,
  112.                                 ODULong    size,
  113.                                 ODPtr buffer);
  114. void    StorageUnitSetValue_C(ODStorageUnit* su,
  115.                                 Environment* ev,
  116.                                 ODULong    size,
  117.                                 const void *buffer);
  118. //void SURemoveProperty(Environment* ev, ODStorageUnit* su, ODPropertyName prop);
  119. //ODBoolean        SUExistsThenFocus(Environment* ev, 
  120. //                            ODStorageUnit* su, ODPropertyName prop, ODValueType val);
  121.  
  122. // Replacements for overloaded functions from ODUtils.cpp
  123.  
  124. ODPart* ODAcquirePartFromFrame( Environment*, ODFrame* );
  125. ODPart* ODAcquirePartFromFacet( Environment*, ODFacet* );
  126.  
  127. ODDraft* ODGetDraftFromPart( Environment*, ODPart* );
  128. ODDraft* ODGetDraftFromSU( Environment*, ODStorageUnit* );
  129.  
  130. ODSession* ODGetSessionFromPart( Environment*, ODPart* );
  131. ODShape* CopyAndRelease( Environment *ev, ODShape *s );
  132.  
  133. #define ODDeleteObject_C(OBJ) \
  134.             if( !(OBJ) ) ; else { SOMObject_somFree(OBJ); (OBJ)=kODNULL; }
  135.  
  136. //------------------------------------------------------------------------------
  137. // Internal Part Maintenance Prototypes
  138. //------------------------------------------------------------------------------
  139.  
  140. CLinkedList        CLinkedList_Create();
  141. void            CLinkedList_Delete(CLinkedList list);
  142. void            CLinkedList_Add(CLinkedList list, ODPtr content);
  143. void            CLinkedList_Remove(CLinkedList list, ODPtr content);
  144. CLink*            CLinkedList_First(CLinkedList list);
  145. ODBoolean        CLinkedList_Contains(CLinkedList list, ODPtr content);
  146. ODUShort        CLinkedList_Count(CLinkedList list);
  147.  
  148. ODPtr             CLink_Content(CLink* link);
  149. CLink*            CLink_Next(CLink* link);
  150.  
  151. CFrameProxy*    CFrameProxy_Create();
  152. void            CFrameProxy_Delete(CFrameProxy** fp, Environment* ev);
  153. void            CFrameProxy_InitFrameProxyWithID(CFrameProxy* fp, ODID frameID, ODDraft* draft);
  154. void            CFrameProxy_InitFrameProxyWithFrame(CFrameProxy* fp, Environment* ev, ODFrame* frame);
  155. void            CFrameProxy_Purge(CFrameProxy* fp, Environment* ev);
  156. ODFrame*        CFrameProxy_GetFrame(CFrameProxy* fp, Environment* ev);
  157. void            CFrameProxy_SetFrame(CFrameProxy* fp, Environment* ev, ODFrame* frame);
  158. ODBoolean        CFrameProxy_FrameIsLoaded(CFrameProxy* fp, Environment* ev);
  159. ODID            CFrameProxy_GetID(CFrameProxy* fp );
  160. ODDraft*        CFrameProxy_GetDraft(CFrameProxy* fp);
  161.     
  162. CFrameInfo*        CFrameInfo_Create(ODSession* session);
  163. void            CFrameInfo_Delete(CFrameInfo** fi, Environment* ev);
  164. void            CFrameInfo_Externalize(CFrameInfo* fi, Environment* ev,
  165.                                             ODStorageUnitView* storageUnitView);
  166. void            CFrameInfo_CleanseFrameInfoProperty(CFrameInfo* fi, Environment* ev,
  167.                                             ODStorageUnit* storageUnit);
  168. void            CFrameInfo_ExternalizeFrameInfo(CFrameInfo* fi, Environment* ev,
  169.                                             ODStorageUnit* storageUnit,
  170.                                             ODDraftKey key, ODFrame* scopeFrame);
  171. void            CFrameInfo_CloneInto(CFrameInfo* fi, Environment *ev, ODDraftKey key,
  172.                                             ODStorageUnitView* storageUnitView,
  173.                                             ODFrame* scopeFrame);
  174. void            CFrameInfo_InitFromStorage(CFrameInfo* fi, Environment* ev,
  175.                                             ODStorageUnitView* storageUnitView);
  176. ODBoolean        CFrameInfo_IsFrameActive(CFrameInfo* fi);
  177. void            CFrameInfo_SetFrameActive(CFrameInfo* fi, ODBoolean active);
  178. ODBoolean        CFrameInfo_FrameNeedsReactivating(CFrameInfo* fi);
  179. void            CFrameInfo_SetFrameReactivate(CFrameInfo* fi, ODBoolean reactivate);
  180. ODFacet*        CFrameInfo_GetActiveFacet(CFrameInfo* fi);
  181. void            CFrameInfo_SetActiveFacet(CFrameInfo* fi, ODFacet* facet);
  182. void            CFrameInfo_SetSourceFrame(CFrameInfo* fi, Environment* ev,
  183.                                             ODFrame* sourceFrame);
  184. ODFrame*        CFrameInfo_GetSourceFrame(CFrameInfo* fi, Environment* ev);
  185. void            CFrameInfo_ReleaseSourceFrame(CFrameInfo* fi, Environment* ev);
  186. ODBoolean        CFrameInfo_HasSourceFrame(CFrameInfo* fi);
  187. ODWindow*        CFrameInfo_AcquirePartWindow(CFrameInfo* fi, Environment* ev);
  188. void            CFrameInfo_SetPartWindow(CFrameInfo* fi, Environment* ev, ODWindow* window);
  189. void            CFrameInfo_SetDependentFrame(CFrameInfo* fi, Environment* ev, ODFrame* frame);
  190. ODFrame*        CFrameInfo_GetDependentFrame(CFrameInfo* fi, Environment* ev);
  191. ODBoolean        CFrameInfo_HasDependentFrame(CFrameInfo* fi);
  192. void            CFrameInfo_ReleaseDependentFrame(CFrameInfo* fi, Environment* ev);
  193. void            CFrameInfo_SetShouldDisposeWindow(CFrameInfo* fi, ODBoolean should);
  194. ODBoolean        CFrameInfo_ShouldDisposeWindow(CFrameInfo* fi);
  195.  
  196. #endif
  197.  
  198.